package com.nacos.demo;

/**
 * nacos服务发现
 *
 * @author 夜曲sin
 * @create 2021/6/24
 */
public class NacosDiscoveryDemo {



    public static void main(String[] args) throws Exception {
    /*
        《nacos服务发现相关笔记》
        【测试版本】nacos2.0.2

        1、服务端负载均衡和客户端负载均衡（* 图《服务端负载均衡和客户端负载均衡.png》）
            - 服务器端负载均衡：
            　　例如Nginx，通过Nginx进行负载均衡，先发送请求，然后通过负载均衡算法，在多个服务器之间选择一个进行访问；即在服务器端再进行负载均衡算法分配。
            - 客户端负载均衡：
            　　例如spring cloud中的ribbon，客户端会有一个服务器地址列表，在发送请求前通过负载均衡算法选择一个服务器，然后进行访问，这是客户端负载均衡；即在客户端就进行负载均衡算法分配。
            - 区别：
            　　客户端负载均衡和服务端负载均衡最大的区别在于服务清单所存储的位置
        2、nacos服务注册、发现和调用流程（* 图：《nacos服务注册、发现和调用流程.png》）
            - 各服务将自己注册nacos，并且从nacos获取所有其它服务的注册列表；
            - 各服务通过自身的负载均衡ribbon选择需要调用的服务；
            - 通过feign调用远程服务。
        3、idea本地模拟多实例时，可以使用启动参数动态设置实例端口号，从而启动一个服务的多个实例：
           （1）方式一：
                - 配置文件中：
                    server:
                        port: ${port:57000}
                - 启动项中：
                    VM选项：-Dport=57002
            （2）方式二：
                直接在启动项配置：-Dserver.port=57000
        4、nacos服务发现实例配置
            可以配置包括：权重、是否上线、元数据等信息
        5、实例的权重越大，调用的概率越高，如果权重为0，则不会被调用

     */

    }

}
